DataProvider কি?
TestNG-তে @DataProvider একটি অ্যানোটেশন, যা ডাটা ড্রিভেন টেস্টিং (Data-Driven Testing) করার জন্য ব্যবহৃত হয়। এটি টেস্ট মেথডে একাধিক ইনপুট ডাটা সরবরাহ করে। DataProvider ব্যবহার করে, একটি টেস্ট মেথড একাধিক ইনপুট ডাটার জন্য বারবার চালানো সম্ভব হয়।
DataProvider-এর বৈশিষ্ট্য
- একাধিক ইনপুট ডাটা সরবরাহ করে একই টেস্ট মেথড পুনরায় চালানো যায়।
- সহজেই ডাটা পরিচালনা এবং টেস্ট কেসের ফলাফল যাচাই করা যায়।
- বিভিন্ন ধরণের ডাটা (Primitive এবং Object) ব্যবহার করা যায়।
- DataProvider একক শ্রেণি বা আলাদা শ্রেণি থেকে ডাটা সরবরাহ করতে পারে।
DataProvider-এর সিনট্যাক্স
@DataProvider(name = "dataProviderName")
public Object[][] dataProviderMethod() {
return new Object[][] {
{data1, data2, ...},
{data3, data4, ...},
};
}
@Test(dataProvider = "dataProviderName")
public void testMethod(type1 param1, type2 param2, ...) {
// টেস্ট লজিক
}
উদাহরণ: সিম্পল DataProvider
import org.testng.annotations.Test;
import org.testng.annotations.DataProvider;
import org.testng.Assert;
public class DataProviderExample {
// DataProvider ডিফাইন করা
@DataProvider(name = "additionData")
public Object[][] provideAdditionData() {
return new Object[][] {
{2, 3, 5},
{5, 7, 12},
{10, 20, 30}
};
}
// DataProvider ব্যবহার করে টেস্ট মেথড
@Test(dataProvider = "additionData")
public void testAddition(int num1, int num2, int expectedSum) {
int actualSum = num1 + num2;
Assert.assertEquals(actualSum, expectedSum, "Addition result mismatch!");
}
}
বর্ণনা:
@DataProviderএর মাধ্যমে তিনটি ডাটাসেট সরবরাহ করা হয়েছে।testAdditionমেথড প্রতিটি ডাটাসেটের জন্য চালানো হবে।Assert.assertEqualsদিয়ে প্রত্যাশিত এবং প্রকৃত ফলাফল যাচাই করা হয়েছে।
উদাহরণ: আলাদা শ্রেণি থেকে DataProvider
DataProvider শ্রেণি:
import org.testng.annotations.DataProvider;
public class TestData {
@DataProvider(name = "loginData")
public Object[][] provideLoginData() {
return new Object[][] {
{"user1", "pass1"},
{"user2", "pass2"},
{"user3", "pass3"}
};
}
}
টেস্ট শ্রেণি:
import org.testng.annotations.Test;
public class LoginTest {
@Test(dataProvider = "loginData", dataProviderClass = TestData.class)
public void testLogin(String username, String password) {
System.out.println("Testing login with: " + username + " and " + password);
// এখানে লগইন ভেরিফিকেশন লজিক যুক্ত করা যাবে।
}
}
বর্ণনা:
TestDataক্লাসে DataProvider ডিফাইন করা হয়েছে।LoginTestক্লাসে DataProvider ব্যবহার করে টেস্ট মেথড চালানো হয়েছে।dataProviderClassব্যবহার করে আলাদা শ্রেণি থেকে DataProvider কল করা হয়েছে।
DataProvider-এর সুবিধা
- একই টেস্ট মেথড বারবার লেখার প্রয়োজন হয় না।
- ডাটা পরিবর্তনের মাধ্যমে সহজেই টেস্ট কেস স্কেল করা যায়।
- জটিল ইনপুট ডাটার জন্য এটি একটি কার্যকরী সমাধান।
উপসংহার
TestNG-তে @DataProvider দিয়ে টেস্টিং সহজ এবং কার্যকর। এটি ডাটা ড্রিভেন টেস্টিংয়ের জন্য অত্যন্ত উপযোগী, বিশেষ করে যখন বিভিন্ন ইনপুট দিয়ে একই টেস্ট মেথড বারবার চালানো প্রয়োজন।
Content added By
Read more